1. Field of the Invention
The present invention pertains to the development of software for programmable radios. In particular, the present invention pertains to generating standard architecture compliant waveform software applications for programmable radios.
2. Description of the Related Art
A software defined or programmable radio (SDR) is analogous to a computer in that users can tailor its capabilities to meet specific needs by using relatively generic hardware and loading multiple software waveform applications that meet identified requirements. A software defined radio or software radio is flexible, by virtue of being programmable, to accommodate various physical layer formats and protocols.
A software defined radio converts analog radio signals of different frequencies into digital data. The bits are processed by software running on a microprocessor. Software controls functionality such as frequency, modulation, bandwidth, security functions, and waveform requirements. Software-programmable, hardware-configurable radio systems provide increased interoperability, flexibility, and adaptability to support the varied operational requirements of specific user populations. Such software radios are typically built upon an open system architecture that supports technology insertion through evolutionary acquisition or preplanned product improvement. Software radios that support evolutionary acquisition or preplanned product improvement may be modularly upgraded with modified hardware and/or software modules. For example, modular upgrades can be used to expand data throughput rates per channel, to expand the number of communication channels supported, and/or to increase levels of reliability, availability, and maintainability supported by the software radio.
One example of a software radio is the Joint Tactical Radio (JTR) System (JTRS). A JTR is a software radio that is independent of the hardware platform employed and based upon the JTRS Software Communication Architecture (SCA). The JTRS SCA is an open architecture framework that tells designers how elements of hardware and software are to operate in harmony within the JTRS. An SCA Hardware (HW) Framework identifies minimum design specifications that must be met by SCA compliant hardware devices, or platforms. An SCA Core Framework defines a set of application programming interfaces (API's) that serve as an abstraction layer between a software defined radio waveform application and services provided by an SCA compliant hardware platform.
Unfortunately, although open software radio architectures, such as the JTRS SCA, support customized designs, evolutionary acquisition and preplanned product improvement, the architectures are typically complex. The complexity of such architectures poses unique challenges to software radio development projects attempting to develop software radios in compliance with the architecture. For example, implementation of a JTRS SCA compliant radio set using conventional software development techniques typically requires the development team members to have a working knowledge of multiple computer languages and technologies, including CORBA, IDL, POSIX, XML, C++, multithreading, and make-files.
Typically, developers experienced with a target waveform to be supported by a JTR under development must surmount this JTRS technology learning curve before they can contribute waveform specific knowledge to the development project. Understanding the intricacies of the JTRS standard and related technologies typically takes an experienced software engineer a daunting six months. Added to this learning curve are the technical demands and challenges posed by the execution and testing of the developed software in an event driven, real-time radio set.
Another drawback associated with the JTRS SCA, is the lack of an enforcement mechanism to ensure that software radio developers adhere to SCA guidance. For example, SCA guidance requires SCA compliant waveforms to be implemented in a manner that is logically separated from the services supported by an SCA compliant hardware platform. Although the SCA provides for such separation via the SCA core framework API's, there is currently no way to ensure that developers preserve the integrity of the API based abstraction.
For example, waveform engineers who are unfamiliar with designing software radios in compliance with the SCA open architecture typically experience difficulty visualizing the new radio set architecture because they are accustomed to envisioning radio set resources and radio set waveforms as integrated entities. As a result, SCA architecture API related guidance is often purposefully and/or inadvertently modified and/or bypassed thereby violating the SCA core framework abstraction of the services provided by the physical radio set to the software radio waveform application. As a result, portability of the software radio waveform application to other SCA compliant physical platforms is compromised.
Hence, a need remains for a method and apparatus that allows software communication architectures, such as the JTRS SCA, to deliver timely and cost effective software defined radio waveform applications that are modular, standard architecture compliant and portable to any standard architecture compliant hardware platform capable of providing the physical services required by the software radio waveform functions. Typically such physical services include receipt of input from a human computer input device or keypad, transmission/receipt of physical radio signals, physical audio input/output via a radio device microphone/speaker, physical modem access, physical network access, etc.
Preferably, such an approach would reduce the technical programming knowledge and standard architecture specific knowledge required of a waveform engineer to implement a standard architecture compliant software radio waveform application. Further, such an approach should provide a software radio development team with a structured development environment that assures that software radio application waveforms are implemented in a manner that complies with standard architecture guidance and preserves the integrity of defined standard architecture abstraction layers.